﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Ferreteria.Clases;

namespace Ferreteria.Forms
{
    public partial class ProvBusqueda : Form
    {
        DisancoEntities context;
        private int ProvID;
        public  Proveedores ProvSeleccionado;
        DataTable dtProveedores;
    

        public ProvBusqueda()
        {
            InitializeComponent();
            cmbBusqProv.SelectedIndex = 0;
            CargarGrillaProv();
       }

        private void CargarGrillaProv()
        {
            context = new DisancoEntities(Ferreteria.Clases.Constantes.cadenaConexion);
            
            dtProveedores = new DataTable();
            dtProveedores.Columns.Add("id");
            dtProveedores.Columns.Add("Nombre");
            dtProveedores.Columns.Add("Direccion");
            dtProveedores.Columns.Add("Localidad");
            dtProveedores.Columns.Add("Cond. IVA");
            dtProveedores.Columns.Add("CUIT");
           
            try
            {
                foreach (var prov in context.Proveedores)
                {
                    DataRow filaprov = dtProveedores.NewRow();
                    filaprov["id"] = prov.prov_id;
                    filaprov["Nombre"] = prov.prov_nombre;
                    filaprov["Direccion"] = prov.prov_direccion;
                    filaprov["Localidad"] = prov.prov_localidad;
                    filaprov["Cond. IVA"] = prov.prov_condicion_iva;
                    filaprov["CUIT"] = prov.prov_cuit;
                    dtProveedores.Rows.Add(filaprov);
                    
                }
                dgvProveedores.DataSource = dtProveedores;
                dgvProveedores.Columns["id"].Visible = false;
                
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            dgvProveedores.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dgvProveedores.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            dgvProveedores.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            context = null;
        }

        private void bttnAceptar_Click(object sender, EventArgs e)
        {
           this.Close();
        }


        private void dgvProveedores_CellClick(object sender, DataGridViewCellEventArgs e)
        {

            context = new DisancoEntities(Ferreteria.Clases.Constantes.cadenaConexion);
            ProvID = Convert.ToInt32(dgvProveedores[0, dgvProveedores.CurrentRow.Index].Value.ToString());
            this.ProvSeleccionado = context.Proveedores.FirstOrDefault(prov => prov.prov_id.Equals(ProvID));
            dgvProveedores.CurrentRow.DefaultCellStyle.BackColor = Color.Green;
            dgvProveedores.CurrentRow.DefaultCellStyle.SelectionBackColor = Color.DarkGreen;

        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            context = new DisancoEntities(Ferreteria.Clases.Constantes.cadenaConexion);

            dtProveedores.Rows.Clear();

            //por defecto busco para Nombre del articulo
            var ProvQuery = from prov in context.Proveedores
                                 where prov.prov_nombre.Contains(txbBuscar.Text)
                                 select prov;
           
            if (cmbBusqProv.SelectedItem.ToString() == "Nombre")
            {
                ProvQuery = from prov in context.Proveedores
                            where prov.prov_nombre.Contains(txbBuscar.Text)
                            select prov;
            }


            if (cmbBusqProv.SelectedItem.ToString() == "Localidad")
            {
                ProvQuery = from prov in context.Proveedores
                            where prov.prov_localidad.Contains(txbBuscar.Text)
                            select prov;
            }

            if (cmbBusqProv.SelectedItem.ToString() == "Cond. IVA")
            {
                ProvQuery = from prov in context.Proveedores
                            where prov.prov_condicion_iva.Contains(txbBuscar.Text)
                            select prov;
            }

            try
            {
                foreach (var prove in ProvQuery)
                {
                    DataRow filaprov = dtProveedores.NewRow();
                    filaprov["id"] = prove.prov_id;
                    filaprov["Nombre"] = prove.prov_nombre;
                    filaprov["Direccion"] = prove.prov_direccion;
                    filaprov["Cond. IVA"] = prove.prov_condicion_iva;
                    filaprov["CUIT"] = prove.prov_cuit;
                    dtProveedores.Rows.Add(filaprov);
                   
                }

                dgvProveedores.DataSource = dtProveedores;
                dgvProveedores.Columns["id"].Visible = false;
               
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            context = null;









        }

        private void ProvBusqueda_KeyDown(object sender, KeyEventArgs e)
        {

            if (e.KeyCode == Keys.Enter)
            {
                e.Handled = true;
                this.btnBuscar_Click(sender, e);

            }
        }

        }
}
